Networked applications rely on transport layer protocols to deliver data across the network. Different types of applications place different requirements on the transport layer. Delay is an issue that presents a challenge in the context of network communications.
End to end delay has several components. Some of these delay components are introduced by elements of a sender, such as a send buffer and congestion control elements. Other delay components are introduced by elements of a receiver such as a receive buffer. Still other delays are introduced by network path elements such as network path buffers and by physical propagation along network links. More particularly, end to end delay can include: 1) Queueing delay in a send buffer, which is the time that data stays in a send buffer until sending starts. This delay occurs when the rate of sending data is lower than the data rate. A large send buffer introduces large queueing delay. 2) Sending delay, which is the time that it takes for data to be sent. This delay can be influenced by the operation of congestion control elements at the sender, which under some conditions acts to reduce the sending rate in order to relieve congestion. 3) Propagation delay, which is the time it takes for a packet to get across the network path under no congestion (including delay due to the finite speed of light in transmission media). 4) Queueing delay in network buffers. This delay occurs when the offered traffic exceeds the network capacity. 5) Retransmission delay, which is the time that it takes for lost packets to be recovered. 6) Head-of-line (HOL) blocking delay, which is introduced by the requirement of in-order delivery and is the time that new data is blocked by old data.
The delay components are determined by two modules in transport protocols. The first is congestion control, which regulates the rate at which data is sent into the network. Congestion control affects the queueing delay in the send buffer, the sending delay, and queueing delay in the network. The second is error control, which provides reliability. Error control affects the retransmission delay and head-of-line blocking delay.
User Datagram Protocol (UDP) and Transmission Control Protocol (TCP) are standard transport protocols in wide use in the Internet. UDP does not provide congestion control. Data is sent immediately. TCP is the most widely used transport protocol. It provides congestion control that responds to the change of available bandwidth. TCP also provides reliability (recovery of lost packets).